package com.example.demo1.mapper;

import com.example.demo1.entity.BaFunction;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface BaFunctionMapper {
    int deleteByPrimaryKey(Integer functionId);

    int insert(BaFunction record);

    int insertSelective(BaFunction record);

    BaFunction selectByPrimaryKey(Integer functionId);

    int updateByPrimaryKeySelective(BaFunction record);

    int updateByPrimaryKey(BaFunction record);

    // 查询全部功能（启用状态）
    List<BaFunction> selectFunctionsByState();

    // 查询全部功能
    List<BaFunction> findAll();

    // 异步验证功能名称是否被使用（用于新增）
    BaFunction validateFunctionName(String functionName);

    // 异步验证功能名称是否被使用（用于编辑，不校验本身）
    BaFunction validateFunctionNameExSelf(@Param("functionName") String functionName, @Param("functionId") Integer functionId);

    // 查询全部功能（功能名称模糊查询）（分页）（初始化查询searchStr为空字符串）
    List<BaFunction> getAllFunctionsByParamLimit(@Param("searchStr") String roleName);
}